#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h> 
 
/**************************** CodeGeeX Inline Diff ****************************/
int main(int argc,char *argv[])
{
	// 打开文件abc.txt，以读写和截断模式打开
	
	int fd1,fd2 = -1;

	fd1 = open("abc.txt",O_RDWR | O_TRUNC);
	// 如果打开文件失败，输出错误信息
	if (fd1==-1){
		perror("open failed");
	} 
	// 输出文件描述符fd1
	printf("fd1 = %d\n",fd1);
	// 关闭标准输出
	close(1);
	// 复制文件描述符fd1到fd2,因为上面关闭了标准输出，也就是数字1，所以这里复制到1，也就是fd1复制到fd2标准输出，fd2就是标准输出1
	fd2 = dup(fd1);
	// 输出文件描述符fd2,因为进行了重定向，所以printf的输出结果应该保存在了abc.txt文档中，而不能标准输出在控制台
	printf("fd2 = %d\n",fd2);
	// 关闭文件描述符fd1
	close(fd1); 
}

